//package jp.sourceforge.talisman.mds.cluster;
//
///*
// * $Id: ClusterTest.java,v 1.1 2009/09/12 05:06:00 weiwei Exp $
// */
//
//import jp.sourceforge.talisman.mds.Item;
//
//import org.junit.Assert;
//import org.junit.Before;
//import org.junit.Test;
//
///**
// * 
// * @author Haruaki Tamada
// * @version $Revision: 1.1 $ 
// */
//public class ClusterTest{
//    private Cluster cluster;
//    private Item[] items;
//
//    @Before
//    public void initialize(){
//        cluster = new Cluster();
//        items = new Item[5];
//
//        cluster.addItem(items[0] = new Item("item1", new double[] { 1, 1, }));
//        cluster.addItem(items[1] = new Item("item2", new double[] { 2, 1, }));
//        cluster.addItem(items[2] = new Item("item3", new double[] { 1, 2, }));
//        cluster.addItem(items[3] = new Item("item4", new double[] { 3, 4, }));
//        cluster.addItem(items[4] = new Item("item5", new double[] { 4, 4, }));
//    }
//
//    @Test
//    public void testBasic() throws Exception{
//        Assert.assertEquals(5, cluster.getSize());
//
//        Assert.assertEquals(new Item("median", new double[] { 11 / 5d, 12 / 5d, }), cluster.getMedian());
//        Item[] i = cluster.getItems();
//        Assert.assertSame(items[0], i[0]);
//        Assert.assertSame(items[1], i[1]);
//        Assert.assertSame(items[2], i[2]);
//        Assert.assertSame(items[3], i[3]);
//        Assert.assertSame(items[4], i[4]);
//
//        Assert.assertEquals(
//            "{item1[0] (1.00000, 1.00000), item2[0] (2.00000, 1.00000), item3[0] (1.00000, 2.00000), item4[0] (3.00000, 4.00000), item5[0] (4.00000, 4.00000) }",
//            cluster.toString()
//        );
//
//        Assert.assertNull(cluster.getName());
//        cluster.setName("cluster1");
//        Assert.assertEquals("cluster1", cluster.getName());
//        Assert.assertEquals(
//            "cluster1 {item1[0] (1.00000, 1.00000), item2[0] (2.00000, 1.00000), item3[0] (1.00000, 2.00000), item4[0] (3.00000, 4.00000), item5[0] (4.00000, 4.00000) }",
//            cluster.toString()
//        );
//    }
//
//    @Test
//    public void testSelfConstructor() throws Exception{
//        Cluster newCluster = new Cluster(cluster);
//        Assert.assertEquals(5, newCluster.getSize());
//
//        Assert.assertEquals(new Item("median", new double[] { 11 / 5d, 12 / 5d, }), newCluster.getMedian());
//        Item[] i = newCluster.getItems();
//        Assert.assertSame(items[0], i[0]);
//        Assert.assertSame(items[1], i[1]);
//        Assert.assertSame(items[2], i[2]);
//        Assert.assertSame(items[3], i[3]);
//        Assert.assertSame(items[4], i[4]);
//
//        Assert.assertEquals(
//            "{item1[0] (1.00000, 1.00000), item2[0] (2.00000, 1.00000), item3[0] (1.00000, 2.00000), item4[0] (3.00000, 4.00000), item5[0] (4.00000, 4.00000) }",
//            newCluster.toString()
//        );
//
//        Assert.assertNull(newCluster.getName());
//        newCluster.setName("cluster1");
//        Assert.assertEquals("cluster1", newCluster.getName());
//        Assert.assertEquals(
//            "cluster1 {item1[0] (1.00000, 1.00000), item2[0] (2.00000, 1.00000), item3[0] (1.00000, 2.00000), item4[0] (3.00000, 4.00000), item5[0] (4.00000, 4.00000) }",
//            newCluster.toString()
//        );
//    }
//
//    @Test
//    public void testSelfConstructorWithName() throws Exception{
//        cluster.setName("is cluster name copied");
//        Cluster newCluster = new Cluster(cluster);
//        Assert.assertEquals(5, newCluster.getSize());
//
//        Assert.assertEquals(new Item("median", new double[] { 11 / 5d, 12 / 5d, }), newCluster.getMedian());
//        Item[] i = newCluster.getItems();
//        Assert.assertSame(items[0], i[0]);
//        Assert.assertSame(items[1], i[1]);
//        Assert.assertSame(items[2], i[2]);
//        Assert.assertSame(items[3], i[3]);
//        Assert.assertSame(items[4], i[4]);
//
//        Assert.assertEquals("is cluster name copied", newCluster.getName());
//        Assert.assertEquals(
//            "is cluster name copied {item1[0] (1.00000, 1.00000), item2[0] (2.00000, 1.00000), item3[0] (1.00000, 2.00000), item4[0] (3.00000, 4.00000), item5[0] (4.00000, 4.00000) }",
//            newCluster.toString()
//        );
//    }
//
//    @Test
//    public void testRemoveItem() throws Exception{
//        cluster.removeItem(items[3]);
//        Assert.assertEquals(4, cluster.getSize());
//
//        Assert.assertEquals(new Item("median", new double[] { 2d, 2d, }), cluster.getMedian());
//        Item[] i = cluster.getItems();
//        Assert.assertSame(items[0], i[0]);
//        Assert.assertSame(items[1], i[1]);
//        Assert.assertSame(items[2], i[2]);
//        Assert.assertSame(items[4], i[3]);
//        Assert.assertEquals(
//            "{item1[0] (1.00000, 1.00000), item2[0] (2.00000, 1.00000), item3[0] (1.00000, 2.00000), item5[0] (4.00000, 4.00000) }",
//            cluster.toString()
//        );
//
//        Assert.assertNull(cluster.getName());
//        cluster.setName("cluster1");
//        Assert.assertEquals("cluster1", cluster.getName());
//        Assert.assertEquals(
//            "cluster1 {item1[0] (1.00000, 1.00000), item2[0] (2.00000, 1.00000), item3[0] (1.00000, 2.00000), item5[0] (4.00000, 4.00000) }",
//            cluster.toString()
//        );
//    }
//
//    @Test
//    public void testRemoveByIndex() throws Exception{
//        cluster.remove(3);
//        Assert.assertEquals(4, cluster.getSize());
//
//        Assert.assertEquals(new Item("median", new double[] { 2d, 2d, }), cluster.getMedian());
//        Item[] i = cluster.getItems();
//        Assert.assertSame(items[0], i[0]);
//        Assert.assertSame(items[1], i[1]);
//        Assert.assertSame(items[2], i[2]);
//        Assert.assertSame(items[4], i[3]);
//        Assert.assertEquals(
//            "{item1[0] (1.00000, 1.00000), item2[0] (2.00000, 1.00000), item3[0] (1.00000, 2.00000), item5[0] (4.00000, 4.00000) }",
//            cluster.toString()
//        );
//
//        Assert.assertNull(cluster.getName());
//        cluster.setName("cluster1");
//        Assert.assertEquals("cluster1", cluster.getName());
//        Assert.assertEquals(
//            "cluster1 {item1[0] (1.00000, 1.00000), item2[0] (2.00000, 1.00000), item3[0] (1.00000, 2.00000), item5[0] (4.00000, 4.00000) }",
//            cluster.toString()
//        );
//    }
//
//    @Test
//    public void testGetItemByIndex() throws Exception{
//        Assert.assertEquals(5, cluster.getSize());
//
//        Assert.assertSame(items[0], cluster.getItem(0));
//        Assert.assertSame(items[1], cluster.getItem(1));
//        Assert.assertSame(items[2], cluster.getItem(2));
//        Assert.assertSame(items[3], cluster.getItem(3));
//        Assert.assertSame(items[4], cluster.getItem(4));
//    }
//
//    @Test
//    public void testOneItemCluster() throws Exception{
//        Cluster c = new Cluster();
//        c.addItem(new Item("item6", new double[] { 2, 3, }));
//
//        Assert.assertEquals(new Item("median", new double[] { 2, 3, }), c.getMedian());
//    }
//
//    @Test
//    public void testNoItemCluster() throws Exception{
//        Cluster c = new Cluster();
//
//        Assert.assertNull(c.getMedian());
//    }
//}
